<?php
use Workerman\Worker;
use Workerman\Lib\Timer;
use Workerman\Lib\Db;

require_once './Autoloader.php';

$config = require_once(__DIR__ . '/Config.php');


Worker::$stdoutFile = '/home/stdout.log';

// 初始化一个worker容器，监听2347端口
$ws_worker = new Worker('websocket://0.0.0.0:2347');
$ws_worker->count = 1;



$ws_worker->onWorkerStart = function($worker)
{
    // 开启一个内部端口，方便内部系统推送数据，Text协议格式 文本+换行符
    $inner_text_worker = new Worker('text://0.0.0.0:5679');
    
    // 设置端口复用，可以创建监听相同端口的Worker（需要PHP>=7.0）
    //$inner_worker->reusePort = true;
    $inner_text_worker->onMessage = function($connection, $buffer)
    {
        // $data数组格式，里面有uid，表示向那个uid的页面推送数据
			
		$data = json_decode($buffer,true);
		
		$invite_uid = $data['invite_uid'];
		$db = new Workerman\Lib\Db('127.0.0.1','3306','root','game@)!*2018','monopoly_game');
          
        $sql = " SELECT id,nickname,avatar FROM `c_users` WHERE id = {$invite_uid}";  // 查询被邀请的用户的信息
        $ret = $db->query($sql);
		
		$connection->send(json_encode($ret));

        /* switch($channel){
            case 'monoly':
                // 通过workerman，向uid的页面推送数据
                $ret = sendMessageByUid($uid, $buffer);
            break;                
        } */

        // 返回推送结果
        //$connection->send($ret ? 'ok' : 'fail');
    };
    // ## 执行监听 ##
    $inner_text_worker->listen();
};

$ws_worker->onMessage = function($connection, $data)
{
	/* $arr = array('uid'=>'uid1','pre'=>'2222');
	$a = json_encode($arr); */
    // 向客户端发送hello $data
	//Timer::add(1, function($a){
		$connection->send('hello:'.$data);	
	//});
    
};

// 运行所有的worker
Worker::runAll();
